<template>
  <div>
    <input placeholder="输入关键字搜索" v-model.trim="searchKeywords" />
    <table class="my-table">
      <thead>
        <tr>
          <th>就诊日期</th>
          <th>医生姓名</th>
          <th>诊断结果</th>
          <th>处方信息</th>
          <th>操作</th>
        </tr>
      </thead>
      <tbody>
        <tr v-for="v of displayList" :key="v.doctor">
          <td>{{ v.date }}</td>
          <td>{{ v.doctor }}</td>
          <td>{{ v.diagnosis }}</td>
          <td>{{ v.prescription }}</td>
          <td @click="showDetail(v)">详情</td>
        </tr>
      </tbody>
    </table>
    <DoctorDetail :visible.sync="isShowDetail" :doctor="doctor" />
  </div>
</template>

<script>
import DoctorDetail from "./DoctorDetail.vue";

export default {
  components: { DoctorDetail },
  name: "DoctorList",
  data() {
    return {
      isShowDetail: false, // 是否显示详情对话框
      doctor: {}, // 当前查看的医生信息
      searchKeywords: "",
      records: [
        {
          date: "2022-01-01",
          doctor: "张三",
          diagnosis: "感冒",
          prescription: "感冒药",
        },
        {
          date: "2022-02-01",
          doctor: "李四",
          diagnosis: "头疼",
          prescription: "止疼药",
        },
        {
          date: "2022-03-01",
          doctor: "王五",
          diagnosis: "腰痛",
          prescription: "止痛贴",
        },
      ],
    };
  },
  computed: {
    displayList() {
      if (this.searchKeywords === "") return this.records;
      //   return this.records.filter((v) => v.doctor === this.searchKeywords);
      return this.records.filter((v) =>
        v.doctor.startsWith(this.searchKeywords)
      );
    },
  },
  methods: {
    showDetail(doctor) {
      this.doctor = doctor;
      this.isShowDetail = true;
    },
  },
};
</script>

<style scoped>
.my-table {
  border-collapse: collapse;
  width: 100%;
}

.my-table td,
.my-table th {
  border: 1px solid #ddd;
  padding: 8px;
  text-align: left;
}

.my-table th {
  background-color: #f2f2f2;
}
</style>